package cz.pecinovsky.english.pojj.adv_demo.zaklad_pavlickove;

/**
 *  Třída PrikazJdi implementuje pro hru příkaz jdi.
 *  Tato třída je součástí jednoduché textové hry.
 *
 *@author     Jarmila Pavlickova
 *@created    říjen 2008 (poslední změny)
 */
public class PrikazJdi implements Prikaz {
    private static final String NAZEV = "jdi";
    private HerniPlan plan;

    /**
    *  Konstruktor třídy
    *
    *  @param plan herní plán, ve kterém se bude ve hře "chodit"
    */
    public PrikazJdi(HerniPlan plan) {
        this.plan = plan;
    }

    /**
     *  Provádí příkaz "jdi". Zkouší se vyjít do zadané místnosti. Pokud místnost
     *  existuje, vstoupí se do nové místnosti. Pokud zadaná sousední
     *  místnosti (východ) není, vypíše se chybové hlášení.
     *
     *@param parametry - jako  parametr obsahuje jméno místnosti,
     *                         do které se má jít.
     *@return zpráva, kterou vypíše hra hráči
     */
    public String proved(String... parametry) {
        if (parametry.length == 0) {
            // pokud chybí druhé slovo (sousední místnost), tak ....
            return "Kam mám jít? Musíš zadat jméno místnosti";
        }

        String smer = parametry[0];

        // zkoušíme přejít do sousední místnosti
        Mistnost sousedniMistnost = plan.getAktualniMistnost().sousedniMistnost(smer);

        if (sousedniMistnost == null) {
            return "Tam se odsud jit neda!";
        }
        else {
            plan.setAktualniMistnost(sousedniMistnost);
            return sousedniMistnost.dlouhyPopis();
        }
    }

    /**
     *  Metoda vrací název příkazu (slovo které používá hráč pro jeho vyvolání)
     *
     *  @ return nazev prikazu
     */
    public String getNazev() {
        return NAZEV;
    }

}
